このドキュメントでは、Sequence SDKを使って二次販売用のオンチェーンコレクティブルマーケットプレイスを構築する方法をご案内します。
始める前に、Builderでマーケットプレイスの設定をお忘れなく。

1. リスティングの取得

まず、ユーザーに表示するためにマーケットプレイスからリスティングを取得します。
IMarketplaceReader reader = new MarketplaceReader(_chain);
ListCollectiblesReturn collectiblesReturn = await reader.ListCollectibleListingsWithLowestPricedListingsFirst(myCollectionContractAddress);
CollectibleOrder[] orders = collectiblesReturn.collectibles;
必要に応じて、CollectiblesFilterを指定してクエリにフィルターをかけることもできます。 このリクエストはページネーションを利用します。小規模なコレクションでページネーションを扱いたくない場合は、ListAllCollectibleListingsWithLowestPricedListingsFirstヘルパー関数を使うと、ページネーションを自動で処理し、すべての該当するCollectibleOrderを取得できます。 また、OnListCollectibleOrdersReturnOnListCollectibleOrdersErrorイベントを購読して、レスポンスを他の場所で処理することも可能です。 これにより、各コレクティブルごとに最も安いリスティングのCollectibleOrderが取得できます。

2. リスティングの表示

ステップ1で取得した CollectibleOrder[] を使って、CollectibleOrder から返された TokenMetadata を利用し、マーケットプレイスのUI上で注文情報を何らかの形で表示しましょう。 SDKに含まれているデモシーンでは、この情報をユーザーに表示する基本的な例をご用意しています。

3. チェックアウト

ユーザーがUIでコレクティブルと数量を選択したら、チェックアウト処理を開始します。弊社の Checkout UI をご利用いただき、必要に応じて見た目をカスタマイズすることをおすすめします。 Checkout UIを開くには、ICheckoutHelperIFiatCheckout のインスタンスが必要です。この場合、それぞれ NftCheckoutSequenceCheckout の実装を使用します。
ICheckoutHelper checkoutHelper = new NftCheckout(wallet, collectibleOrder, collectibleSprite, amount);
ここでの collectibleOrder は、UIで表示された CollectibleOrder[] から選択されたコレクティブルです。NftCheckout は、必要に応じて同じコレクティブルの追加リスティングを取得し、購入可能な数量の範囲内で購入数を制限します。
IFiatCheckout fiatCheckout = new SequenceCheckout(wallet, chain, collectibleOrder, amount);